When an image composited by a personal computer or the like is output by a printer, a print control apparatus implemented by a personal computer must color-convert image data expressed by luminance signals R (red), G (green), and B (blue) into color signals Y (yellow), M (magenta), C (cyan), and K (black) (or Y, M, C) used in the printer. In this conversion, color correction of RGB data (from 8-bit RGB data into 8-bit RGB data), color conversion (from 8-bit RGB data into 8-bit CMYK data), grayscale correction (from 8-bit CMYK data to 8-bit CMYK data), and quantization (from 8-bit CMYK data into 1-bit CMYK data) are executed in turn.
Such conversion or correction uses look-up tables prepared in advance. Each processing module that implements conversion or correction holds its look-up tables, and retrieves and loads a look-up table according to a print mode designated by print quality, a quantization method, and the like in its own search sequence to execute relevant processes.
That is, it is a common practice to access a conventional look-up table inside a library module as a part of the library module that attains correction or conversion for image processes. Also, a table search method is often unique to the library module.
The look-up tables prepared in advance differ only in units of print modes. If a given print mode is selected, identical printer models use an identical look-up table regardless of their various head or printer conditions.
However, since each module holds its own look-up tables, when a print mode is added, deleted, or modified, all modules must undergo addition, deletion, and modification of look-up tables in correspondence with the changed print mode to maintain consistency. If one of these modules suffers errors, a normal print process is often disturbed.
That is, in the conventional architecture in which each library module accesses its own look-up tables, even when only a look-up table has been changed, the library module must be re-compiled every time the look-up table is changed, resulting in, e.g., low debugging efficiency in the development process. Also, in a printer driver composed of a plurality of library modules which are created in units of functions, a change in look-up table often influences a plurality of library modules, resulting in not only low efficiency but also low quality of the printer driver (first problem).
In the above method, look-up tables are prepared in advance, and identical printer models use an identical look-up table (LUT) independently of their head conditions and the like. Also, different LUTs are prepared only in units of print modes.
However, a single look-up table prepared in advance cannot always provide the best print results due to individual differences, aging, and the like of printer main bodies, ink heads, and the like. For example, when a magenta-rich head is used, the image is entirely tinged with red, or gray balance cannot be held (second problem). In order to solve this problem, the look-up table must be updated, but updating of the look-up table poses the first problem.
When a print process is done using a print apparatus which can select a plurality of types of print paper, various print methods, and the like, the user selects or inputs various kinds of information required for an intended print process.
In this case, a print control apparatus displays setup values of print information required for the print process, e.g., setup items “ink cartridge”, “paper type”, “paper source”, “grayscale print”, “print quality”, “dithering”, “image data correction”, “photo data correction”, and the like, as shown in FIG. 32. The user selects or inputs setup values from the displayed items.
After setup values are input, the print control apparatus combines the selected or input information to obtain information required for the print process.
However, with this method, since the user must select or input various kinds of information required for the print process, the load on the user is heavy. Also, when the user inputs or selects wrong information, an optimal print process may be disturbed.
For example, when the user selects “OHP paper” as a setup value of setup item “paper type” but selects “auto sheet feeder” as a setup value of setup item “paper source” upon printing on paper for which “manual feed” must be selected as “paper source”, a print error such as paper jam or the like is highly likely to occur since manual feed is not done. When the contents and the number of items of input information have been changed, or when the contents and the number of items of information to be provided to the print apparatus have been changed, it is difficult for the user to cope with such changes.
In order to solve these problems, Japanese Patent Laid-Open Nos. 09-179698, 10-049318, and the like have been proposed. In these proposals, when a given setup item is set at a certain value, items the select ranges of values of which can be determined accordingly, and the value ranges are held as link information. When a given print setup value has been changed, the print control apparatus acquires the changed item and link information corresponding to that value. The print control apparatus controls a user interface to limit items and values that can be changed on the basis of the acquired link information.
However, with this method, when the value of a given item has been changed, since link information that matches a condition such as the changed value or the like is searched, a data table for storing link information must have a huge size as the number of conditions increases. In order to compensate for such shortcoming, in another method, a plurality of conditions required for searching link information are combined to define a new condition, and the link information is searched using the new condition.
However, with this method, when an original condition or link information has been changed, combinations of search conditions must be re-defined. Since the combinations of conditions are statically defined by a mechanism for searching link information, the mechanism for searching link information, e.g., a program executed by a computer to search link information, must be changed upon re-defining conditions (third problem).
The conventional print control apparatus offers print margin information to an application program. Print margins offered by the print control apparatus are information required for reliably forming an image on a designated paper sheet, and differ depending on paper sizes, unlike margins set by an application or the like. The print control apparatus computes the left margin, top margin, and vertical and horizontal printable area values on the basis of the vertical and horizontal sizes of a paper sheet, paper size name, or the like as an input, and offers them to the application. For example, when the paper sheet has an A4 size, the left margin is 3.4 mm; when the paper sheet has an envelope size, it is 6.4 mm. When the paper sheet has a user-defined size, the print control apparatus computes margins using a predetermined formula on the basis of the defined paper size.
With such conventional method, since the margin information computation processing sequence is coded as a program, when the number of types of paper sizes increases, the program must be updated in correspondence with the sizes.
Furthermore, since printable paper sizes vary depending on printer models, the margin computation program must be developed in units of printer models. Moreover, the margin computation method changes not only by paper sizes but also under complicated conditions to cope with continuous paper without top and bottom margins, perforated paper, and the like. As a result, a margin computation program including complicated condition checking steps must be developed in correspondence with printer models.
In this manner, a development efficiency drop of a margin information offering system, and quality drop due to a complicated program readily occur (fourth problem).
As described in the first to fourth problems, when the print control apparatus acquires data by searching a table, and executes predetermined operation on the basis of the acquired data, if the number of items of the table is changed, not only the table must be updated, but also a module (e.g., a program) that looks up the table must be renewed.